package cn.bytengine.stem.functional;

import java.io.Serializable;

public class Consumers {

    public interface Consumer0 extends Serializable {
        void accept();
    }

    public interface Consumer1<T1> extends Serializable {
        void accept(T1 arg1);
    }

    public interface Consumer2<T1, T2> extends Serializable {
        void accept(T1 arg1, T2 arg2);
    }

    public interface Consumer3<T1, T2, T3> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3);
    }

    public interface Consumer4<T1, T2, T3, T4> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
    }

    public interface Consumer5<T1, T2, T3, T4, T5> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
    }

    public interface Consumer6<T1, T2, T3, T4, T5, T6> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6);
    }

    public interface Consumer7<T1, T2, T3, T4, T5, T6, T7> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7);
    }

    public interface Consumer8<T1, T2, T3, T4, T5, T6, T7, T8> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8);
    }

    public interface Consumer9<T1, T2, T3, T4, T5, T6, T7, T8, T9> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9);
    }

    public interface ConsumerA<T1, T2, T3, T4, T5, T6, T7, T8, T9, TA> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, TA argA);
    }

    public interface ConsumerB<T1, T2, T3, T4, T5, T6, T7, T8, T9, TA, TB> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, TA argA, TB argB);
    }

    public interface ConsumerC<T1, T2, T3, T4, T5, T6, T7, T8, T9, TA, TB, TC> extends Serializable {
        void accept(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9, TA argA, TB argB, TC argc);
    }
}
